package com.robotic.sensor.domain;


import com.fasterxml.jackson.annotation.JsonInclude;

/**
 * GasReading 数据传输对象 (DTO)，用于封装从气体传感器读取的数据。
 * 这是一个标准的 Java 类，以兼容 Java 8 及更高版本。
 */
@JsonInclude(JsonInclude.Include.NON_NULL) // Jackson注解，序列化为JSON时忽略null字段
public final class GasReading {

    private final String status;
    private final double concentration;
    private final int decimalPlaces;
    private final String rawHexResponse;
    private final String error;

    /**
     * 构造函数
     * @param status 探测器状态 ("正常", "报警", "故障")
     * @param concentration 计算后的最终浓度值
     * @param decimalPlaces 浓度的小数位数
     * @param rawHexResponse 原始16进制响应字符串
     * @param error 错误信息，成功时为 null
     */
    public GasReading(String status, double concentration, int decimalPlaces, String rawHexResponse, String error) {
        this.status = status;
        this.concentration = concentration;
        this.decimalPlaces = decimalPlaces;
        this.rawHexResponse = rawHexResponse;
        this.error = error;
    }

    // --- Getter 方法 ---

    public String getStatus() {
        return status;
    }

    public double getConcentration() {
        return concentration;
    }

    public int getDecimalPlaces() {
        return decimalPlaces;
    }

    public String getRawHexResponse() {
        return rawHexResponse;
    }

    public String getError() {
        return error;
    }
}
